import { doGet, appJsonPost } from '@/network/request';
import axios from "axios";

/**
 * 添加收藏
 */
export function addFavoriteApi(data:object) {
    return appJsonPost({
        url: "/favorites",
        data: data,
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 删除收藏
 */
export function removeFavoriteApi(resourceId:any, Id:any) {
    return axios.delete(`/favorites`, {
        headers: {
            'X-XSRF-TOKEN': getCsrfToken(), // 添加 CSRF Token
        },
        params: { resourceId, id: Id } // 通过查询参数传递 resourceId 和 userId
    });
}

/**
 * 查询用户的所有收藏
 */
export function getUserFavoritesApi(userId:any) {
    return doGet({
        url: `/favorites/user`, // 使用请求参数而不是路径参数
        params: { userId }, // 传递 userId
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 查询某个资源的收藏总数
 */
export function getFavoriteCountApi(resourceId:any) {
    return doGet({
        url: `/favorites/count`, // 使用 GET 请求
        params: { resourceId }, // 通过查询参数传递 resourceId
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}
export function getFavoriteStatusApi(resourceId:any, Id:any) {
    return doGet({
        url: `/favorites/status`, // 使用 GET 请求
        params: { resourceId, Id },
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}
/**
 * 获取 CSRF Token
 */
function getCsrfToken() {
    const name = 'XSRF-TOKEN=';
    const decodedCookie = decodeURIComponent(document.cookie);
    const cookies = decodedCookie.split(';');
    for (let i = 0; i < cookies.length; i++) {
        const cookie = cookies[i].trim();
        if (cookie.indexOf(name) === 0) {
            return cookie.substring(name.length, cookie.length);
        }
    }
    console.warn('CSRF Token not found in cookies');
    return '';
}
